Skip to content

构建 Go 的最小镜像

标签
开发/容器化/Docker
开发/云原生/Docker
软件/云原生/docker
开发/语言/Golang
开发/容器化/Docker/Dockerfile
字数
514 字
阅读时间
3 分钟
文档版本
编辑者版本变更日期变更说明
Nekov1.0.02022-04-09创建

可以参考下面的案例

docker
# syntax=docker/dockerfile:1

# ------ [ 构建步骤 ] ------

# 设定构建步骤所使用的来源镜像为基于 Alpine 发行版的 Go 1.18 版本镜像
FROM golang:1.18-alpine as builder

# 安装构建所需要的必要二进制文件,如果你不需要,可以不安装
RUN apk add bash git

# 设定 Go 使用 模块化依赖 管理方式:GO111MODULE
RUN GO111MODULE=on

# 创建路径 /app
RUN mkdir /app

# 复制 <组织旗下的其他依赖仓库> 到 /app 下面方便构建
COPY ./<组织旗下的其他依赖仓库> /app/<组织旗下的其他依赖仓库>

# 复制当前目录下 go-src 到 /app/go-src
COPY ./go-src /app/go-src

# 切换到 /app/go-src 目录
WORKDIR /app/go-src

# 执行编译
RUN CGO_ENABLED=0 go build -a -o "release/go-src"

# ------ [ 运行步骤 ] ------

# 设定运行步骤所使用的镜像为基于 Alpine 发行版镜像
FROM alpine as runner

# 创建路径 /app
RUN mkdir /app

# 创建路径 /app/go-src/bin
RUN mkdir -p /app/go-src/bin

# 创建路径 /app/go-src/bin
RUN mkdir -p /app/go-src/logs

# 将编译产物和其他需要的文件放入 /app/go-src 中
COPY --from=builder /app/go-src/release/go-src /app/go-src/bin/

# 映射配置文件路径
VOLUME [ "/etc/go-src" ]

# 映射日志文件路径
VOLUME [ "/app/go-src/logs" ]

# 入点是编译好的 neve-service 应用程序
ENTRYPOINT [ "/app/go-src/bin/go-src" ]

# 暴露 8080 端口
EXPOSE 8080

延伸阅读

构建 Golang 应用最小 Docker 镜像 - 掘金使用scratch构建最小化Go程序的docker image - Go语言中文网 - Golang中文社区为Go应用程序构建最小的Docker容器_danpob13624的博客-CSDN博客「推荐阅读」- 如何给go项目打最小docker镜像,足足降低99%_Scoful的博客-CSDN博客golang 打包到docker运行,最小镜像 - 知乎打造最小 Go Docker Image | Containerhesion3d/slimage: Make slim docker image for golang applications.

贡献者

页面历史

撰写

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。

聚光灯

支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。

ON开启
开启聚光灯。
OFF关闭
关闭聚光灯。

聚光灯样式

调整聚光灯的样式。

置于底部
在当前鼠标悬停的元素下方添加一个纯色背景以突出显示当前鼠标悬停的位置。
置于侧边
在当前鼠标悬停的元素旁边添加一条固定的纯色线以突出显示当前鼠标悬停的位置。